<?php
/**
 * 后台权限管理
 */
namespace Admin\Controller;

use Admin\Controller\CommonController;


class PermissionController extends CommonController
{
    /**
     * 系统菜单管理
     */
    function sys_menus()
    {
        $menus=M('sys_menu')->where(array('parent_id'=>0))->order('sort_num asc')->select();
        $this->assign('menus',$menus);
        $this->display();
    }

    /**
     * 编辑系统菜单
     */
    function addmenus(){
        if(IS_POST){
            //回复内容 $arrmsg=array('errno'=>0,'error'=>'提示信息','url'=>'空时不跳转');//'tip'=>'提示信息，中间显示',
            $arrmsg=array('errno'=>1,'tip'=>'','url'=>'');
            $action=I('action');
            $add['sys_menu_name']=I('sys_menu_name');
            $add['parent_id']=I('parent_id');
            $add['sort_num']=I('sort_num');
            $add['link_url']=I('link_url');
            if($action=='add'){
                $id=M('sys_menu')->add($add);
                if(!$id) {
                    $arrmsg['error']='添加失败！';
                    $this->ajaxReturn($arrmsg);
                }
            }else if($action=='edit'){
                $add['sys_menu_id']=I('sys_menu_id');
                M('sys_menu')->save($add);
            }
            $arrmsg['errno']=0;
            $arrmsg['error']='系统菜单编辑成功！';
            $arrmsg['url']=U('Admin/Permission/sys_menus');
            $this->ajaxReturn($arrmsg);
        }else{
            $action=I('action','add');
            $sys_menu_id=I('sys_menu_id','add');
            if($action=='edit'){
                $menus=M('sys_menu')->where(array('sys_menu_id'=>$sys_menu_id))->find();
                $this->assign('menus',$menus);
            }
            $this->assign('action',$action);
            $this->assign('sys_menu_id',$sys_menu_id);
            $this->display();
        }
    }

    /**
     * 删除菜单
     */
    function delmenu()
    {
        if(IS_POST){
            //回复内容
            $arrmsg=array('errno'=>0,'error'=>'','url'=>'');
            $id=I('tid');
            $del=M('sys_menu')->where(array('sys_menu_id'=>$id))->delete();
            if(!$del) {
                $arrmsg=array('errno'=>1,'error'=>'网络错误','url'=>'');
            }
            $this->ajaxReturn($arrmsg);
        }
    }

    /**
     * 用户角色管理
     */
    function usertypes()
    {
        $types=M('user_type')->select();
        $this->assign('types',$types);
        $this->assign('total',count($types));
        $this->display();
    }

    /**
     * 编辑用户角色
     */
    function addtypes()
    {
        if(IS_POST){
            //回复内容 $arrmsg=array('errno'=>0,'error'=>'提示信息','url'=>'空时不跳转');//'tip'=>'提示信息，中间显示',
            $arrmsg=array('errno'=>1,'tip'=>'','url'=>'');
            $action=I('action');
            $menusid=I('menusid');
            $menus=array();
            for($i=0;$i<count($menusid);$i++)
            {
                $menurow=M('sys_menu')->where(array('sys_menu_id'=>$menusid[$i]))->find();
                $menus[]=$menurow;
            }
            $module = json_encode($menus);

            $add['user_type_name']=I('user_type_name');
            $add['module']=$module;
            if($action=='add'){
                $id=M('user_type')->add($add);
                if(!$id) {
                    $arrmsg['error']='添加失败！';
                    $this->ajaxReturn($arrmsg);
                }
            }else if($action=='edit'){
                $add['user_type_id']=I('user_type_id');
                M('user_type')->save($add);
            }
            $arrmsg['errno']=0;
            $arrmsg['error']='用户角色编辑成功！';
            $arrmsg['url']=U('Admin/Permission/usertypes');
            $this->ajaxReturn($arrmsg);
        }else{
            $action=I('action','add');
            $user_type_id=I('user_type_id');
            $menus=M('sys_menu')->where(array('parent_id'=>0))->order('sort_num asc')->select();
            $this->assign('menus',$menus);
            $this->assign('action',$action);
            $this->assign('user_type_id',$user_type_id);
            if($action=='edit'){
                $type=M('user_type')->where(array('user_type_id'=>$user_type_id))->find();
                $this->assign('type',$type);
                $this->assign('module',json_decode($type['module']));
            }
            $this->display();
        }
    }

    /**
     * 删除用户
     */
    function delusertype(){
        if(IS_POST){
            //回复内容
            $arrmsg=array('errno'=>0,'error'=>'','url'=>'');
            $ids=I('tid');
            if(is_array($ids)){
                for($i=0;$i<count($ids);$i++){
                    $del=M('user_type')->where(array('user_type_id'=>$ids[$i]))->delete();
                    if(!$del) {
                        $arrmsg=array('errno'=>1,'error'=>'网络错误','url'=>'');
                    }
                }
            }else{
                $del=M('user_type')->where(array('user_type_id'=>$ids))->delete();
                if(!$del) {
                    $arrmsg=array('errno'=>1,'error'=>'网络错误','url'=>'');
                }
            }
            $this->ajaxReturn($arrmsg);
        }
    }

    /**
     * 用户管理
     */
    function users(){
        $sysuser =D('Sysusers');
        $map['username']=array('neq','rekeadmin');
        //开始分页信息
        $count =  $sysuser->relation(true)->where($map)->count();
        //分页
        $Page = new \Think\Page($count,10);//实例化分页类 传入总记录数和每页显示的记录数(25)
        $show = $Page->show();  //分页显示输出
        $infolist= $sysuser->relation(true)->where($map)->order('addtime desc')->limit($Page->firstRow.','.$Page->listRows)->select();
        $this->assign('count',$count);
        $this->assign('nowPage',$Page->nowPage);// 当前页
        $this->assign('totalPages',$Page->totalPages);// 总分页数
        $this->assign("infolist",$infolist);
        $this->assign('page', $show);// 赋值分页输出
        $this->display();
    }

    /**
     * 添加管理员
     */
    function addusers(){
        if(IS_POST){
            //回复内容 $arrmsg=array('errno'=>0,'error'=>'提示信息','url'=>'空时不跳转');//'tip'=>'提示信息，中间显示',
            $arrmsg=array('errno'=>1,'tip'=>'','url'=>'');
            $action=I('action');
            $username=I('username');
            //用户数据
            $udata=array('username'=>$username,
                'usernickname'=>I('usernickname'),
                'usertype'=>1,//有权限访问后台
                'usermobile'=>I('usermobile'),
                'useremail'=>I('useremail'),
                'userqq'=>I('userqq'),
                'user_type_id'=>I('user_type_id')
            );
            if($action=='add'){
                //验证用户名
                $checkuname=M('sysuser')->where(array('username'=>$username))->count();;
                if($checkuname){
                    $arrmsg['error']='已有相同的用户名称！';
                    $this->ajaxReturn($arrmsg);
                }

                $udata['userpwd']=md5(I('userpwd'));
                $udata['userid']=md5(time());
                $udata['addtime']=date('Y-m-d H:i:s');
                $user_id=I('user_id','');
                if(!empty($user_id)){
                    $udata['user_id']=$user_id;
                }
                $uesrid=M('sysuser')->add($udata);
//                echo M('sysuser')->getLastSql();
                if(!$uesrid){
                    $arrmsg['error']='网络错误！';
                    $this->ajaxReturn($arrmsg);
                }
                //如果用户id不为空则修改该用户为志愿者组长
                if(!empty($user_id)){
                    $userUpdate['id']=$user_id;
                    $userUpdate['is_leader']=1;
                    M('fuchips_user')->save($userUpdate);
                }
            }else if($action=='edit'){
                //判断是否修改了密码
                if(md5(I('userpwd'))!=I('oldpwd')){
                    $udata['userpwd']=md5(I('userpwd'));
                }
                $userid=I('userid');
                $udata['userid']=$userid;
                M('sysuser')->save($udata);
            }
            $arrmsg['errno']=0;
            $arrmsg['error']='管理员编辑成功！';
            $arrmsg['url']=U('Admin/Permission/users');
            $this->ajaxReturn($arrmsg);
        }else{
            $user_id=I('user_id','');
            $true_name=I('true_name','');
            $this->assign('user_id',$user_id);
            $this->assign('true_name',$true_name);
            $action=I('action','add');
            $this->assign('action',$action);
            if($action=='edit'){
                $userid=I('userid');
                $uinfo=M('sysuser')->where(array('userid'=>$userid))->find();
                $this->assign('userid',$userid);
                $this->assign('uinfo',$uinfo);
            }
            $this->display();
        }
    }

    /**
     * 删除用户
     */
    function delsysuser(){
        if(IS_POST){
            //回复内容
            $arrmsg=array('errno'=>0,'error'=>'','url'=>'');
            $id=I('tid');
            $del=M('sysuser')->where(array('userid'=>$id))->delete();
            if(!$del) {
                $arrmsg=array('errno'=>1,'error'=>'网络错误','url'=>'');
            }
            $this->ajaxReturn($arrmsg);
        }
    }
}
